iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0
自我挑戰組

30天學會用FreeBSD & Apache架網站系列 第 24

【Day24】Apache的SSL設定:httpd-ssl.conf

  • 分享至 

  • xImage
  •  

今天要來講SSL囉!
我們會用certbot來生SSL。

certbot

我們先打開certbot的網站,然後會看到有一行:
https://ithelp.ithome.com.tw/upload/images/20191007/20120263Mkj708wq8R.png
把software選apache,system選FreeBSD,然後他就會開始生步驟,那我們就照著他的步驟吧:
pkg install py36-certbot
他也有說可以用ports裝,不過我就懶得用了~
sudo certbot certonly --standalonesudo certbot certonly --webroot
前者是在apache先關掉的時候,後者是讓你的apache繼續跑。個人習慣前者,很怕後者會出事QQ
然後建議先開screen,待會要複製東西。
然後他會問你一些問題,就如實回答,會放在你憑證的資訊裡面。
到了第四個問題就很重要了,要問你的網域,千萬要打對,不然可能要重做。
然後他會跑一下,跑完之後你會看到一個IMPORTANT NOTES,他會有兩個路徑,就是你的key,像我的就是 /usr/local/etc/letsencrypt/live/test.cnmc.tw/fullchain.pem/usr/local/etc/letsencrypt/live/test.cnmc.tw/privkey.pem(當然你們有自己的domain name)。接下來就要把它們弄到apache的設定檔囉。

extra/httpd-ssl.conf & httpd.conf

先把剛剛的路徑複製好,或是可以直接把他們移動。
然後打開/usr/local/etc/apache24/extra/httpd-ssl.conf。找一下SSLCertificateFile,然後把剛剛fullchain.pem的路徑給他;再找SSLCertificateKeyFile,把privkey.pem的路徑給他,完成之後應該會像這樣:

SSLCertificateFile "/usr/local/etc/letsencrypt/live/test.cnmc.tw/fullchain.pem"
SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/test.cnmc.tw/privkey.pem"

然後接下來再去httpd.conf,先把約524行的Include etc/apache24/extra/httpd-ssl.conf取消註解(不然剛剛改那麼就是在幹嘛),
再把大概147行左右的ssl_module取消註解,接下來還有大概91行的socache_shmcb_module也取消註解(如果沒弄的話會跑錯誤,看到錯誤就知道該怎麼弄)。
最後再service apache24 start,這樣就大功告成囉!可以去你的網站用https連連看,如果有出現那個安全的鎖就是可以了,如果沒有,然後你的apache還沒跳錯誤,那就真是太神奇了OAO

基本上這樣就可以了,但是接下來還是要講些httpd-ssl.conf的設定。
他其實跟httpd.conf是差不多的,以後有改網站路徑之類的要在這裡改。只有一個昨天沒有講到的:
SSLEngine On
再大概132行,應該很顯然一定要吧,沒有的話你的ssl就跑不起來了。
<VirtualHost _default_:443>
我們明天就會講到類似的東西了,可以先有個印象就好。
剩下很多都是昨天提過的像是DocumentRootErrorLog等等,如果忘記了就請回到昨天

.htaccess

昨天再講AllowOverride有提到他,他用途很多,我們現在只是用它來把所有的連線都導到https。
我們先在/usr/local/etc/apache24建一個叫.htaccess的檔案,然後把這段東西貼上:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://test.cnmc.tw/ [R,L]

正是正規表示式,令人難過的是我對他不熟,所以我也是去查資料來的。(資料來源)
接下來要去httpd.conf取消註解大概在179行的rewrite_module,這樣他上面那個RewriteEngine才能動。再來要加一行(真難得):Include etc/apache24/.htaccess
最後再service apache24 restart,他就會自動導過去了!
可以去看一下你的網站有沒有都導到https,我會直接打IP試試,如果有基本上就是有了;也可以用http://test.cnmc.tw看看。

今日小結

今天就把網頁弄了https,這樣應該舒服多了吧!
如果過程中有不順的話很有可能是忘記取消註解之類的,可以仔細看看錯誤訊息跟文章。
話說今天段考欸,好可怕,明天還有4科,然後有兩科還沒念完...


上一篇
【Day23】Apache的主要設定檔:httpd.conf
下一篇
【Day25】Apache的虛擬主機設定:httpd-vhosts.conf
系列文
30天學會用FreeBSD & Apache架網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言